package com.fanshuai.tree.segmenttree;

/**
 * 线段树规范
 */
public interface ISegmentTree<E> {
    /**
     * 点更新  更新index索引下的值value
     * @param index
     * @param value
     */
    void update(int index, E value);

    /**
     * 区间查询  查询区间[L,R]的值
     * @param L
     * @param R
     * @return
     */
    E query(int L, int R);

    /**
     * 区间更新
     * @param L  开始索引
     * @param R  结束索引
     * @param value  区间值
     */
    void update(int L, int R, E value);
}
